1. Field of the Invention
The present invention relates to a computer program product, system, and method for client object replication between a first backup server and a second backup server.
2. Description of the Related Art
In a data protection environment, the goal is to protect client data and backup the data on a regular basis. In a client/server backup model, the client comprises an application or host system that backs-up its data to a server or backup server. As part of a backup data protection scheme, the backup server maintains an inventory of the files contained on the client. After the initial backup operation, during a subsequent backup, also referred to as an “incremental backup”, the client queries the backup server for its view of the inventory, and compares the sever view of the inventory with the client view of the inventory, i.e., client file system. Files which are new or changed on the client are selected for backup, and files which have been deleted from the client are selected for deletion on the server. Each incremental backup cycle performs this comparison to determine the work to perform.
Traditional incremental backup obtains the list of backup and expiration candidates by building comprehensive lists of local objects, and lists of active server objects for the file system being backed-up. The local lists are obtained by scanning the local file system. The server list is obtained by querying the corresponding server inventory for all active objects. The lists may indicate objects in a directory of the file system, partition, or other logical partition of the data. The two lists are compared, and candidates are selected according to the following criteria. An object is selected as a backup candidate if it exists in the local list, but does not exist in the server list. The object is also a backup candidate if it exists in both lists, but differs according to incremental criteria (for example, attribute changes, date and size changes). An object is selected as an expiration candidate if it exists in the server list, but does not exist in the local list.
Journal-based backup obtains the candidates list of objects to backup and expire by querying a journal service for the contents of the change journal of the file system being backed up. Change journal entries are cleared (marked as free) after they have been processed by the backup client and committed on the backup server. Journal-based backup is activated by configuring the journal service to monitor specified file systems for change activity. A Journal Based Backup (JBB) technique can avoid the incremental comparison for each cycle.
Another data protection technique is clustering, where two servers are used to provide high availability. Clustered servers may be in close proximity and may distribute the tasks over machines in the cluster to prevent hardware or software failures on a member machine from making a service unavailable. For example, a basic cluster might consist of two systems each running its own workload, but capable of taking on the workload of the other machine, should the other machine fail. In many clustering environments, the application and its data is made highly available, but the data itself may not be duplicated. In other words, in most cases, clustering helps achieve high availability of the application if a single machine goes down, or a network link is lost.
A yet further data protection scheme is replication. Replication makes copies of the data itself and creates a catalog or inventory of the data